package com.grupobbva.iici.session;

import java.math.BigDecimal;
import java.util.Iterator;
import java.util.Vector;

import com.grupobbva.iici.entity.Tiici_menuLocal;

import java.util.Collection;
import com.ibm.etools.service.locator.ServiceLocatorManager;
import com.grupobbva.iici.entity.Tiici_menuLocalHome;
import com.grupobbva.iici.serializable.Menu;

import com.grupobbva.iici.entity.Tiici_menuKey;

/**
 * Bean implementation class for Enterprise Bean: SessionMenu
 */
public class SessionMenuBean implements javax.ejb.SessionBean {
	private javax.ejb.SessionContext mySessionCtx;

	private final static String STATIC_Tiici_menuLocalHome_REF_NAME = "ejb/Tiici_menu";

	private final static Class STATIC_Tiici_menuLocalHome_CLASS = Tiici_menuLocalHome.class;

	//private final static Logger logger = (SessionMenuBean.logger);
	/**
	 * getSessionContext
	 */
	public javax.ejb.SessionContext getSessionContext() {
		return mySessionCtx;
	}

	/**
	 * setSessionContext
	 */
	public void setSessionContext(javax.ejb.SessionContext ctx) {
		mySessionCtx = ctx;
	}

	/**
	 * ejbCreate
	 */
	public void ejbCreate() throws javax.ejb.CreateException {
	}

	/**
	 * ejbActivate
	 */
	public void ejbActivate() {
	}

	/**
	 * ejbPassivate
	 */
	public void ejbPassivate() {
	}

	/**
	 * ejbRemove
	 */
	public void ejbRemove() {
	}

	public Vector findxCodPerfil(String codPerfil) {
		codPerfil = "%" + codPerfil + "%";
		Vector listaMenu = new Vector();
		Tiici_menuLocal menuLocal = null;
		try {

			Collection aCollection = find_Tiici_menuLocalHome_findxCodPerfil(codPerfil);
			Iterator menuIterator = aCollection.iterator();
			while (menuIterator.hasNext()) {
				Menu menu = new Menu();
				menuLocal = (Tiici_menuLocal) menuIterator.next();
				menu.setPadre(String.valueOf(menuLocal.getPadre()));
				menu.setHijo(String.valueOf(menuLocal.getHijo()));
				menu.setDescripcion(String.valueOf(menuLocal.getDescripcion()));
				menu.setLink(String.valueOf(menuLocal.getLink()));
				listaMenu.add(menu);
			}

		} catch (Exception e) {
			/*logger
			 .info("SessionGestorBean(findAllGestor): No se pudo obtener los gestores de la tabla Gestor");*/
			return null;
		}
		return listaMenu;
	}

	public Menu findxIdMenu(java.math.BigDecimal padre) {
		Menu menu = new Menu();
		try {
			Tiici_menuLocal aTiici_menuLocal = find_Tiici_menuLocalHome_findByPrimaryKey(new Tiici_menuKey(
					padre));
			if (aTiici_menuLocal != null) {
				menu.setPadre(String.valueOf(aTiici_menuLocal.getPadre()));
				menu.setHijo(String.valueOf(aTiici_menuLocal.getHijo()));
				menu.setDescripcion(String.valueOf(aTiici_menuLocal
						.getDescripcion()));
				menu.setLink(String.valueOf(aTiici_menuLocal.getLink()));
				menu.setCodPerfil(String.valueOf(aTiici_menuLocal
						.getCod_perfil()));

			}
		} catch (Exception e) {
			//logger.info("Error al probar ejb de entidad: Naming Exception"
			//	+ e.getMessage());
		}
		return menu;
	}

	public Vector findAllMenu() {

		Vector listaMenu = new Vector();
		Tiici_menuLocal menuLocal = null;
		try {
			Collection aCollection = find_Tiici_menuLocalHome_findAllMenu();
			Iterator menuIterator = aCollection.iterator();
			while (menuIterator.hasNext()) {
				Menu menu = new Menu();
				menuLocal = (Tiici_menuLocal) menuIterator.next();
				menu.setPadre(String.valueOf(menuLocal.getPadre()));
				menu.setHijo(String.valueOf(menuLocal.getHijo()));
				menu.setDescripcion(String.valueOf(menuLocal.getDescripcion()));
				menu.setLink(String.valueOf(menuLocal.getLink()));
				menu.setCodPerfil(String.valueOf(menuLocal.getCod_perfil()));
				listaMenu.add(menu);
			}

		} catch (Exception e) {
			/*logger
			 .info("SessionGestorBean(findAllGestor): No se pudo obtener los gestores de la tabla Gestor");*/
			return null;
		}
		return listaMenu;
	}

	public boolean createMenu(Menu menu) {
		try {			
			Tiici_menuLocal aTiici_menuLocal = createTiici_menuLocal(menu);
			return true;

		} catch (Exception e) {
			/*logger.info("Error al insertar registro en corporativa "
			 + e.getMessage());*/
		}
		return false;
	}

	public boolean deleteMenu(java.math.BigDecimal padre) {

		try {
			Tiici_menuLocal aTiici_menuLocal = find_Tiici_menuLocalHome_findByPrimaryKey(new Tiici_menuKey(
					padre));		

			if (aTiici_menuLocal != null) {
				aTiici_menuLocal.remove();
				return true;
			}
		} catch (Exception e) {
			/*logger.info("Error al eliminar data en deleteMenu "
					+ e.getMessage());*/
		}
		return false;
	}

	public boolean updateMenu(Menu menu) {
		Tiici_menuLocal aTiici_menuLocal = find_Tiici_menuLocalHome_findByPrimaryKey(new Tiici_menuKey(new BigDecimal(menu.getPadre())));
		
		if(aTiici_menuLocal!=null)
		{
			aTiici_menuLocal.setHijo(new BigDecimal(menu.getHijo()));
			aTiici_menuLocal.setDescripcion(menu.getDescripcion());
			aTiici_menuLocal.setLink(menu.getLink());
			aTiici_menuLocal.setCod_perfil(menu.getCodPerfil());
			return true;
		}
		return false;
		
	}
	
	protected Collection find_Tiici_menuLocalHome_findxCodPerfil(
			String codPerfil) {
		Tiici_menuLocalHome aTiici_menuLocalHome = (Tiici_menuLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_menuLocalHome_REF_NAME,
						STATIC_Tiici_menuLocalHome_CLASS);
		try {
			if (aTiici_menuLocalHome != null)
				return aTiici_menuLocalHome.findxCodPerfil(codPerfil);
		} catch (javax.ejb.FinderException fe) {
			fe.printStackTrace();
		}
		return null;
	}
	protected Tiici_menuLocal find_Tiici_menuLocalHome_findByPrimaryKey(
			Tiici_menuKey primaryKey) {
		Tiici_menuLocalHome aTiici_menuLocalHome = (Tiici_menuLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_menuLocalHome_REF_NAME,
						STATIC_Tiici_menuLocalHome_CLASS);
		try {
			if (aTiici_menuLocalHome != null)
				return aTiici_menuLocalHome.findByPrimaryKey(primaryKey);
		} catch (javax.ejb.FinderException fe) {
			fe.printStackTrace();
		}
		return null;
	}
	protected Collection find_Tiici_menuLocalHome_findAllMenu() {
		Tiici_menuLocalHome aTiici_menuLocalHome = (Tiici_menuLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_menuLocalHome_REF_NAME,
						STATIC_Tiici_menuLocalHome_CLASS);
		try {
			if (aTiici_menuLocalHome != null)
				return aTiici_menuLocalHome.findAllMenu();
		} catch (javax.ejb.FinderException fe) {
			fe.printStackTrace();
		}
		return null;
	}
	protected Tiici_menuLocal createTiici_menuLocal(Menu mp) {
		Tiici_menuLocalHome aTiici_menuLocalHome = (Tiici_menuLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_menuLocalHome_REF_NAME,
						STATIC_Tiici_menuLocalHome_CLASS);
		try {
			if (aTiici_menuLocalHome != null)
				return aTiici_menuLocalHome.create(mp);
		} catch (javax.ejb.CreateException ce) {
			ce.printStackTrace();
		}
		return null;
	}
}
